package com.easydict.core;

import com.easydict.annotation.EasyDict;
import com.easydict.spi.DictionaryResolver;
import com.fasterxml.jackson.databind.ser.BeanPropertyWriter;

/**
 * 属性写入器工厂
 * 负责创建不同类型的属性写入器
 */
public interface PropertyWriterFactory {
    
    BeanPropertyWriter createDictionaryWriter(
            BeanPropertyWriter originalWriter,
            EasyDict annotation,
            DictionaryResolver resolver,
            SerializationContext context
    );
    
    BeanPropertyWriter createStandardWriter(
            BeanPropertyWriter originalWriter,
            SerializationContext context
    );
    
    boolean supports(BeanPropertyWriter writer, SerializationContext context);
}
